The present invention relates generally to a method and system for transferring difference data indicative of the differences between new data and old data to a storage device storing the old data for enabling the storage device to determine the new data based on the stored old data and the transferred difference data and then replace the old data with the new data.
As processing power increases and reduces the overhead associated with data transfers to storage devices, the remaining large component of time becomes the actual transfer of the data. It is difficult to speed the handshake of a data transfer so it is also difficult to make performance gains when transferring data to storage devices.
There are a variety of applications in which data is transferred from a transferring unit such as a cache or other memory to a target storage device in order to have the data copied onto the target storage device. These applications include peer-to-peer remote copy (PPRC) systems, storage area network (SAN) systems, and systems generally having some type of memory connected to a target storage device. In these applications the transferring unit has a copy of an old data file and the target storage device stores a copy of the old data file. A host computer or the like then changes the old data file at the transferring unit. The old data file then becomes an updated data file at the transferring unit. The updated data file reflects the changes made to the old data file by the host computer. The transferring unit then typically transfers an entire copy of the updated data file to the target storage device. The target storage device then replaces the stored old data file with the updated data file.
Transferring an entire copy of the updated data file from the transferring unit to the target storage device and then replacing the old data file with the copy of the updated data file takes too much time. It is desirable that only the changes or differences between the updated data file and the old data file be transferred from the transferring unit to the target storage device such that the target storage device can store a copy of the updated data file as quickly as possible.
Accordingly, it is an object of the present invention to provide a method and system for transferring difference data between new and old data to a storage device having a copy of the old data for enabling the storage device to determine the new data based on the old data and the transferred difference data and then replace the old data with the new data.
It is another object of the present invention to provide a peer-to-peer remote copy (PPRC) method and system for transferring difference data between new data and old data from a primary storage subsystem to a secondary storage subsystem having a copy of the old data for enabling the secondary storage subsystem to determine the new data from the old data and the transferred difference data and then replace the old data with the new data.
It is a further object of the present invention to provide a method and system for transferring difference data between new data and old data from a storage area network (SAN) to a target storage device having a copy of the old data for enabling the target storage device to determine the new data from the old data and the transferred difference data and then replace the old data with the new data.
It is still another object of the present invention to provide a method and system for transferring difference data between new data and old data from a cache to a target storage device having a copy of the old data for enabling the target storage device to determine the new data from the old data and the transferred difference data and then replace the old data with the new data.
In carrying out the above objects and other objects, the present invention provides a storage system having a data transferring unit and a target storage device. The data transferring unit has an old data file and a new data file. The data transferring unit includes a processor for comparing the new data file with the old data file to determine difference data indicative of the differences between the new data file and the old data file. The data transferring unit further has a transmitter for transmitting the difference data. The target storage device has the old data file and a receiver for receiving the difference data from the data transferring unit. The target storage device further includes a processor for merging the old data file with the difference data file to determine the new data file. Upon determining the new data file the target storage device replaces the old data with the new data.
The storage system may be a peer-to-peer remote copy (PPRC) storage system in which the data transferring unit is a primary storage subsystem of the PPRC storage system and the target storage device is a secondary storage subsystem of the PPRC storage system. The storage system may be a storage area network (SAN) storage system in which the target storage device is a storage device of the SAN storage system. In general, the data transferring unit may be a cache or other type of memory and the target storage device may be a relatively long term storage device such as disks, tape, optical media, and the like.
In carrying out the above objects and other objects, the present invention further provides a method for storing data in a storage system. The method includes storing an old data file at a data transferring unit and a target storage device. The transferring unit then receives a new data file and compares the new data file with the old data file to determine difference data indicative of the differences between the new data file and the old data file. The data transferring unit then transfers the difference data to the target storage device. Upon receiving the difference data from the data transferring unit the target storage device merges the old data file with the difference data file to determine the new data file. The target storage device then replaces the old data with the new data.
In carrying out the above objects and other objects, the present invention also provides a storage system having a first data transferring unit having first old and new data files. The first data transferring unit includes a first processor for comparing the first new and old data files to determine a first difference data indicative of the differences between the first new and old data files. The first data transferring unit has a first transmitter for transmitting the first difference data with first meta data. The first meta data is indicative of the first difference data being associated with the first data transferring unit and the first old and new data files. The storage system further includes a second data transferring unit having second old and new data files. The second data transferring unit includes a second processor for comparing the second new and data files to determine a second difference data indicative of the differences between the second new and old data files. The second data transferring unit has a second transmitter for transmitting the second difference data with second meta data. The second meta data is indicative of the second difference data being associated with the second data transferring unit and the second old and new data files.
The storage system also includes a target storage device having the first and second old data files. The target storage device has a receiver for receiving the first and second difference data and the first and second meta data from the first and second data transferring units. The target storage device further has a processor for merging the first and second old data files with the first and second difference data file to determine the first and second new data files, and for analyzing the meta data to determine which data transferring unit and old and new data files are associated with the difference data. Upon determining the first and second new data files the target storage device replaces the first and second old data files with the first and second new data files.
The above objects and other objects, features, and advantages of the present invention are readily apparent from the following detailed description of the best mode for carrying out the present invention when taken in connection with the accompanying drawings.